package com.project.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.framework.config.BigDecimalSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class ProInitOtherBaseInfoVo {

    /** 项目名称 */
    private String name;

    /** 项目分类 */
    private String projectClass;

    /** 项目id */
    private String id;

    /** 负责人 */
    private String chargerName;

    /** 负责人 */
    private String chargerCode;

    /** 负责人类型 */
    private String chargerType;

    /** 负责人类型名称 */
    private String chargerTypeName;

    /** 项目编号 */
    private String code;

    /** 所属单位 */
    private String unitName;

    /** 批准经费 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal feeAuthorize = new BigDecimal(0);

    /** 外拨经费 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal outFee = new BigDecimal(0);

    /** 配套经费 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal attachFee = new BigDecimal(0);

    /** 自筹经费 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal selfProvideFee = new BigDecimal(0);

    /** 已到金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal feeIn = new BigDecimal(0);

    /** 报销金额 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal baoXiaoMoney = new BigDecimal(0);

    /** 组织形式名称 */
    private String formName;

    /** 组织形式 */
    private String formId;

    /** 合作形式名称 */
    private String cooperateName;

    /** 合作形式 */
    private String cooperateId;

    /** 牵头单位 */
    private String leadUnitName;

    /** 审核状态名称 */
    private String checkStatusName;

    /** 审核状态id */
    private String checkStatus;

    /** 项目分类 */
    private String proType;

    /** 项目分类名称 */
    private String proTypeName;

    /** 签订日期、立项日期 */
    private String authorizeDate;

    /** 开始日期 */
    private String beginDate;

    /** 终止日期 */
    private String planEndDate;

    /** 项目状态 */
    private String projectStatusName;

    /** 课题类型 */
    private String levelType;

    /** 合同有效状态 */
    private String validStateName;

    /** 进行状态 */
    private String proStatusName;

    /** 有无出账合同标识 */
    private String isThereBuyer = "0";

    /** 有无未审核的变更申请标识（不用了） */
    private String isThereChange = "0";

    /** 有无未审核的中检申请标识（不用了）  */
    private String isThereMiddelCheck = "0";

    /** 有无未审核的结项申请标识（不用了）  */
    private String isThereComplete = "0";

    /** 该项目的结项申请id */
    private String completeId;

    /** 流程实例id */
    private String processInstanceId;

    /** 审核时间 */
    private String checkDate;

    /** 审核人 */
    private String checker;

    /** 终止日期 */
    private String actualEndDate;

    /** 业务判断标识 */
    private Map<String,String> businessFlag;

    /** 文件名称 */
    private List<OtherFilesVo> fileInfos;


    @Data
    public static class OtherFilesVo {

        /** 文件id */
        private String fileId;

        /** 文件名 */
        private String fileName;
    }
}
